<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lwIP: src/include/lwip/ip_addr.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lwIP
   &#160;<span id="projectnumber">2.1.2</span>
   </div>
   <div id="projectbrief">Lightweight IP stack</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('ip__addr_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ip_addr.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="opt_8h.html">lwip/opt.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="def_8h.html">lwip/def.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="ip4__addr_8h.html">lwip/ip4_addr.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="ip6__addr_8h.html">lwip/ip6_addr.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structip__addr.html">ip_addr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1eaffd17b4b3c56cc91a6d516e18118f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga1eaffd17b4b3c56cc91a6d516e18118f">IPADDR4_INIT</a>(u32val)&#160;&#160;&#160;{ { { { u32val, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V4 }</td></tr>
<tr class="separator:ga1eaffd17b4b3c56cc91a6d516e18118f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55cc3896c46564bd2941ee5806fe1e11"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga55cc3896c46564bd2941ee5806fe1e11">IPADDR4_INIT_BYTES</a>(a,  b,  c,  d)&#160;&#160;&#160;<a class="el" href="group__ip4addr.html#ga1eaffd17b4b3c56cc91a6d516e18118f">IPADDR4_INIT</a>(PP_HTONL(<a class="el" href="def_8h.html#acf56d3da92a0a7a8a62a617e793e948c">LWIP_MAKEU32</a>(a,b,c,d)))</td></tr>
<tr class="separator:ga55cc3896c46564bd2941ee5806fe1e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1266e500b1db0b7cdc4b269cace49746"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga1266e500b1db0b7cdc4b269cace49746">IPADDR6_INIT</a>(a,  b,  c,  d)&#160;&#160;&#160;{ { { { a, b, c, d } <a class="el" href="group__ip6__zones.html#gaa090e54f632c8512a7991307e011c1b9">IPADDR6_ZONE_INIT</a> } }, <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02">IPADDR_TYPE_V6</a> }</td></tr>
<tr class="separator:ga1266e500b1db0b7cdc4b269cace49746"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadaff748da2b808995993dd3db5420f08"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#gadaff748da2b808995993dd3db5420f08">IPADDR6_INIT_HOST</a>(a,  b,  c,  d)&#160;&#160;&#160;{ { { { PP_HTONL(a), PP_HTONL(b), PP_HTONL(c), PP_HTONL(d) } <a class="el" href="group__ip6__zones.html#gaa090e54f632c8512a7991307e011c1b9">IPADDR6_ZONE_INIT</a> } }, <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02">IPADDR_TYPE_V6</a> }</td></tr>
<tr class="separator:gadaff748da2b808995993dd3db5420f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83b17dbf7d1faf5c8f8c20b039db8bb8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga83b17dbf7d1faf5c8f8c20b039db8bb8">IP_IS_ANY_TYPE_VAL</a>(ipaddr)&#160;&#160;&#160;(IP_GET_TYPE(&amp;ipaddr) == <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cac6b2c99cf920e08efcb55dc40e42944e">IPADDR_TYPE_ANY</a>)</td></tr>
<tr class="separator:ga83b17dbf7d1faf5c8f8c20b039db8bb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23b580930c0eb1d0fdeba2b109c077a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga23b580930c0eb1d0fdeba2b109c077a5">IPADDR_ANY_TYPE_INIT</a>&#160;&#160;&#160;{ { { { 0ul, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_ANY }</td></tr>
<tr class="separator:ga23b580930c0eb1d0fdeba2b109c077a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1a059f07bd9c50aa58447d963b823a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gab1a059f07bd9c50aa58447d963b823a1">IP_IS_V4_VAL</a>(ipaddr)&#160;&#160;&#160;(IP_GET_TYPE(&amp;ipaddr) == <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049">IPADDR_TYPE_V4</a>)</td></tr>
<tr class="separator:gab1a059f07bd9c50aa58447d963b823a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1578e34703e86711a7fb7dcc3857004d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga1578e34703e86711a7fb7dcc3857004d">IP_IS_V6_VAL</a>(ipaddr)&#160;&#160;&#160;(IP_GET_TYPE(&amp;ipaddr) == <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02">IPADDR_TYPE_V6</a>)</td></tr>
<tr class="separator:ga1578e34703e86711a7fb7dcc3857004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabee5dab2191bb0f3355d7f30d1496f24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gabee5dab2191bb0f3355d7f30d1496f24">IP_IS_V4</a>(ipaddr)&#160;&#160;&#160;(((ipaddr) == NULL) || <a class="el" href="group__ip4addr.html#gab1a059f07bd9c50aa58447d963b823a1">IP_IS_V4_VAL</a>(*(ipaddr)))</td></tr>
<tr class="separator:gabee5dab2191bb0f3355d7f30d1496f24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9bac7e938757f1d24df2404e8b57cb7d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga9bac7e938757f1d24df2404e8b57cb7d">IP_IS_V6</a>(ipaddr)&#160;&#160;&#160;(((ipaddr) != NULL) &amp;&amp; <a class="el" href="group__ip6addr.html#ga1578e34703e86711a7fb7dcc3857004d">IP_IS_V6_VAL</a>(*(ipaddr)))</td></tr>
<tr class="separator:ga9bac7e938757f1d24df2404e8b57cb7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06e75bcd198012b5ba39480c233608bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)&#160;&#160;&#160;(&amp;((ipaddr)-&gt;u_addr.ip6))</td></tr>
<tr class="separator:ga06e75bcd198012b5ba39480c233608bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7268a496b7e3f872efecd859eba6f03"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(ipaddr)&#160;&#160;&#160;(&amp;((ipaddr)-&gt;u_addr.ip4))</td></tr>
<tr class="separator:gad7268a496b7e3f872efecd859eba6f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd2203c6cbfb6de8c2d9ce5bbfb2bd2a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gadd2203c6cbfb6de8c2d9ce5bbfb2bd2a">IP_ADDR4</a>(ipaddr,  a,  b,  c,  d)</td></tr>
<tr class="separator:gadd2203c6cbfb6de8c2d9ce5bbfb2bd2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ee53b601b89dcb517496ba0bccf9bd0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga9ee53b601b89dcb517496ba0bccf9bd0">IP_ADDR6</a>(ipaddr,  i0,  i1,  i2,  i3)</td></tr>
<tr class="separator:ga9ee53b601b89dcb517496ba0bccf9bd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfb1ce44d6a8791336bf3ac06aa086ca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#gabfb1ce44d6a8791336bf3ac06aa086ca">IP_ADDR6_HOST</a>(ipaddr,  i0,  i1,  i2,  i3)&#160;&#160;&#160;<a class="el" href="group__ip6addr.html#ga9ee53b601b89dcb517496ba0bccf9bd0">IP_ADDR6</a>(ipaddr,PP_HTONL(i0),PP_HTONL(i1),PP_HTONL(i2),PP_HTONL(i3))</td></tr>
<tr class="separator:gabfb1ce44d6a8791336bf3ac06aa086ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77a933975db287f6aa5c2e70249ba18f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga77a933975db287f6aa5c2e70249ba18f">ip_addr_copy</a>(dest,  src)</td></tr>
<tr class="separator:ga77a933975db287f6aa5c2e70249ba18f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe6f7908ce8a91dc587e2ebc2172e651"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#gabe6f7908ce8a91dc587e2ebc2172e651">ip_addr_copy_from_ip6</a>(dest,  src)</td></tr>
<tr class="separator:gabe6f7908ce8a91dc587e2ebc2172e651"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga130ca0907497831677c130dbb3289e1e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga130ca0907497831677c130dbb3289e1e">ip_addr_copy_from_ip6_packed</a>(dest,  src)</td></tr>
<tr class="separator:ga130ca0907497831677c130dbb3289e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef063b2e975dae7ecf398770b04b14af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gaef063b2e975dae7ecf398770b04b14af">ip_addr_copy_from_ip4</a>(dest,  src)</td></tr>
<tr class="separator:gaef063b2e975dae7ecf398770b04b14af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga971516589980428bf51f37cefa4ddf66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga971516589980428bf51f37cefa4ddf66">ip_addr_set_ip4_u32</a>(ipaddr,  val)</td></tr>
<tr class="separator:ga971516589980428bf51f37cefa4ddf66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga624b5010ccc04cc3d0de2acce44f1c9e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga624b5010ccc04cc3d0de2acce44f1c9e">ip_addr_set_ip4_u32_val</a>(ipaddr,  val)</td></tr>
<tr class="separator:ga624b5010ccc04cc3d0de2acce44f1c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09c62e8a3bf599aa7f335e0ad0820e85"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga09c62e8a3bf599aa7f335e0ad0820e85">ip_addr_get_ip4_u32</a>(ipaddr)</td></tr>
<tr class="separator:ga09c62e8a3bf599aa7f335e0ad0820e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40db7feae2b92f7a7a01d65a85b06e18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga40db7feae2b92f7a7a01d65a85b06e18">ip_addr_set</a>(dest,  src)</td></tr>
<tr class="separator:ga40db7feae2b92f7a7a01d65a85b06e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea5e4795598bc33fa2db1773c8e6fbac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaea5e4795598bc33fa2db1773c8e6fbac">ip_addr_set_ipaddr</a>(dest,  src)&#160;&#160;&#160;<a class="el" href="group__ipaddr.html#ga40db7feae2b92f7a7a01d65a85b06e18">ip_addr_set</a>(dest, src)</td></tr>
<tr class="separator:gaea5e4795598bc33fa2db1773c8e6fbac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae7edb585c062ae03bfbd3af7bf671bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaae7edb585c062ae03bfbd3af7bf671bc">ip_addr_set_zero</a>(ipaddr)</td></tr>
<tr class="separator:gaae7edb585c062ae03bfbd3af7bf671bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecb93d575e65f835f1045a4e87e70ed9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ip__addr_8h.html#aecb93d575e65f835f1045a4e87e70ed9">ip_addr_set_zero_ip4</a>(ipaddr)</td></tr>
<tr class="separator:aecb93d575e65f835f1045a4e87e70ed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb3a0e5241683aff573e195f31ba8845"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#gafb3a0e5241683aff573e195f31ba8845">ip_addr_set_zero_ip6</a>(ipaddr)</td></tr>
<tr class="separator:gafb3a0e5241683aff573e195f31ba8845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8853fce54b1816dca3af90b48677e673"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga8853fce54b1816dca3af90b48677e673">ip_addr_set_any</a>(is_ipv6,  ipaddr)</td></tr>
<tr class="separator:ga8853fce54b1816dca3af90b48677e673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93c7bf3f7487495472aa0f9b5fc25d1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga93c7bf3f7487495472aa0f9b5fc25d1a">ip_addr_set_any_val</a>(is_ipv6,  ipaddr)</td></tr>
<tr class="separator:ga93c7bf3f7487495472aa0f9b5fc25d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f9d56ac85cd87338a1823e4a58ba1da"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga8f9d56ac85cd87338a1823e4a58ba1da">ip_addr_set_loopback</a>(is_ipv6,  ipaddr)</td></tr>
<tr class="separator:ga8f9d56ac85cd87338a1823e4a58ba1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1c5f897bbee217771b1a6ba18733042"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gac1c5f897bbee217771b1a6ba18733042">ip_addr_set_loopback_val</a>(is_ipv6,  ipaddr)</td></tr>
<tr class="separator:gac1c5f897bbee217771b1a6ba18733042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3528798be1d2f1ec6a6bccd35694edce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga3528798be1d2f1ec6a6bccd35694edce">ip_addr_set_hton</a>(dest,  src)</td></tr>
<tr class="separator:ga3528798be1d2f1ec6a6bccd35694edce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5c5540ea05227bdd9207a47304bb2c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gab5c5540ea05227bdd9207a47304bb2c1">ip_addr_get_network</a>(target,  host,  netmask)</td></tr>
<tr class="separator:gab5c5540ea05227bdd9207a47304bb2c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a2123f0bbf6fe843c8542e349c680eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga3a2123f0bbf6fe843c8542e349c680eb">ip_addr_netcmp</a>(addr1,  addr2,  mask)</td></tr>
<tr class="separator:ga3a2123f0bbf6fe843c8542e349c680eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga008c9c92d770cc030ea054e6b259835a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga008c9c92d770cc030ea054e6b259835a">ip_addr_cmp</a>(addr1,  addr2)</td></tr>
<tr class="separator:ga008c9c92d770cc030ea054e6b259835a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb66f6d5fa926ed4b0e69db58dffcbe4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gadb66f6d5fa926ed4b0e69db58dffcbe4">ip_addr_cmp_zoneless</a>(addr1,  addr2)</td></tr>
<tr class="separator:gadb66f6d5fa926ed4b0e69db58dffcbe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga279118890e6a90aa740051fb8b0cc5f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga279118890e6a90aa740051fb8b0cc5f4">ip_addr_isany</a>(ipaddr)</td></tr>
<tr class="separator:ga279118890e6a90aa740051fb8b0cc5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd8f5aa151cff966fd28368b85f38c05"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gacd8f5aa151cff966fd28368b85f38c05">ip_addr_isany_val</a>(ipaddr)</td></tr>
<tr class="separator:gacd8f5aa151cff966fd28368b85f38c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3345706e3aa8b32dd630c195b053e75"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaa3345706e3aa8b32dd630c195b053e75">ip_addr_isbroadcast</a>(ipaddr,  <a class="el" href="structnetif.html">netif</a>)</td></tr>
<tr class="separator:gaa3345706e3aa8b32dd630c195b053e75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2170d3ee13dd22722222228e7b1c5752"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga2170d3ee13dd22722222228e7b1c5752">ip_addr_ismulticast</a>(ipaddr)</td></tr>
<tr class="separator:ga2170d3ee13dd22722222228e7b1c5752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0fc8bf6662809274750868683b3a422e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga0fc8bf6662809274750868683b3a422e">ip_addr_isloopback</a>(ipaddr)</td></tr>
<tr class="separator:ga0fc8bf6662809274750868683b3a422e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33bc079baaf513a9a7381b9531a1f653"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga33bc079baaf513a9a7381b9531a1f653">ip_addr_islinklocal</a>(ipaddr)</td></tr>
<tr class="separator:ga33bc079baaf513a9a7381b9531a1f653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8619278bcbf705844f584f36972fc758"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga8619278bcbf705844f584f36972fc758">IPADDR_STRLEN_MAX</a>&#160;&#160;&#160;IP6ADDR_STRLEN_MAX</td></tr>
<tr class="separator:ga8619278bcbf705844f584f36972fc758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5f26df8f5099f330ad1e506c74f06f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gae5f26df8f5099f330ad1e506c74f06f7">ip4_2_ipv4_mapped_ipv6</a>(ip6addr,  ip4addr)</td></tr>
<tr class="separator:gae5f26df8f5099f330ad1e506c74f06f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66b5a64b12128e3716bcf04ff91b5a57"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga66b5a64b12128e3716bcf04ff91b5a57">unmap_ipv4_mapped_ipv6</a>(ip4addr,  ip6addr)&#160;&#160;&#160;(ip4addr)-&gt;addr = (ip6addr)-&gt;addr[3];</td></tr>
<tr class="separator:ga66b5a64b12128e3716bcf04ff91b5a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e5e67b7292b156034560fef2202776c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga3e5e67b7292b156034560fef2202776c">IP_ADDR_ANY</a>&#160;&#160;&#160;<a class="el" href="group__ip4addr.html#gae920b6e81610a38cf9ada52118807eff">IP4_ADDR_ANY</a></td></tr>
<tr class="separator:ga3e5e67b7292b156034560fef2202776c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae920b6e81610a38cf9ada52118807eff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gae920b6e81610a38cf9ada52118807eff">IP4_ADDR_ANY</a>&#160;&#160;&#160;(&amp;ip_addr_any)</td></tr>
<tr class="separator:gae920b6e81610a38cf9ada52118807eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3f65a42b68149e96e618600b2ca2e42"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gaa3f65a42b68149e96e618600b2ca2e42">IP4_ADDR_ANY4</a>&#160;&#160;&#160;(<a class="el" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(&amp;ip_addr_any))</td></tr>
<tr class="separator:gaa3f65a42b68149e96e618600b2ca2e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad546955e48dada78b552375b873f6986"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#gad546955e48dada78b552375b873f6986">IP_ADDR_BROADCAST</a>&#160;&#160;&#160;(&amp;ip_addr_broadcast)</td></tr>
<tr class="separator:gad546955e48dada78b552375b873f6986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5efdf55ba72c2b1b5755b1fc6f559a1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip4addr.html#ga5efdf55ba72c2b1b5755b1fc6f559a1a">IP4_ADDR_BROADCAST</a>&#160;&#160;&#160;(<a class="el" href="group__ip4addr.html#gad7268a496b7e3f872efecd859eba6f03">ip_2_ip4</a>(&amp;ip_addr_broadcast))</td></tr>
<tr class="separator:ga5efdf55ba72c2b1b5755b1fc6f559a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5181d2cb6b9254eb5ad4137f7b3635a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga5181d2cb6b9254eb5ad4137f7b3635a0">IP6_ADDR_ANY</a>&#160;&#160;&#160;(&amp;ip6_addr_any)</td></tr>
<tr class="separator:ga5181d2cb6b9254eb5ad4137f7b3635a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga953cdd2592764ba2e6e021aea350ad43"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ip6addr.html#ga953cdd2592764ba2e6e021aea350ad43">IP6_ADDR_ANY6</a>&#160;&#160;&#160;(<a class="el" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(&amp;ip6_addr_any))</td></tr>
<tr class="separator:ga953cdd2592764ba2e6e021aea350ad43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe43b154533b73585c4e58f568370ede"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gabe43b154533b73585c4e58f568370ede">IP_ANY_TYPE</a>&#160;&#160;&#160;(&amp;ip_addr_any_type)</td></tr>
<tr class="separator:gabe43b154533b73585c4e58f568370ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga16ef96d6cde029029bbf47fee35fd67a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structip__addr.html">ip_addr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a></td></tr>
<tr class="separator:ga16ef96d6cde029029bbf47fee35fd67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf2142f0dfdcc938e2db16aa745ed585c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gaf2142f0dfdcc938e2db16aa745ed585c">lwip_ip_addr_type</a> { <a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049">IPADDR_TYPE_V4</a> = 0U, 
<a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585caae510fd8ec7fe405b594b57af61f9a02">IPADDR_TYPE_V6</a> = 6U, 
<a class="el" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cac6b2c99cf920e08efcb55dc40e42944e">IPADDR_TYPE_ANY</a> = 46U
 }</td></tr>
<tr class="separator:gaf2142f0dfdcc938e2db16aa745ed585c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gace12d28aef35bb15962e8563aea571b1"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#gace12d28aef35bb15962e8563aea571b1">ipaddr_ntoa</a> (const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr)</td></tr>
<tr class="separator:gace12d28aef35bb15962e8563aea571b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3684dabc0cae597ffb5b51d41f1d886f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga3684dabc0cae597ffb5b51d41f1d886f">ipaddr_ntoa_r</a> (const <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr, char *buf, int buflen)</td></tr>
<tr class="separator:ga3684dabc0cae597ffb5b51d41f1d886f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4de70fdd7fd36c5b6eaed8b855d5f151"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ipaddr.html#ga4de70fdd7fd36c5b6eaed8b855d5f151">ipaddr_aton</a> (const char *cp, <a class="el" href="group__ipaddr.html#ga16ef96d6cde029029bbf47fee35fd67a">ip_addr_t</a> *addr)</td></tr>
<tr class="separator:ga4de70fdd7fd36c5b6eaed8b855d5f151"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>IP address API (common IPv4 and IPv6) </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aecb93d575e65f835f1045a4e87e70ed9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecb93d575e65f835f1045a4e87e70ed9">&#9670;&nbsp;</a></span>ip_addr_set_zero_ip4</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ip_addr_set_zero_ip4</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ipaddr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>{ \</div><div class="line">  ip6_addr_set_zero(<a class="code" href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a>(ipaddr)); IP_SET_TYPE(ipaddr, <a class="code" href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049">IPADDR_TYPE_V4</a>); }<span class="keywordflow">while</span>(0)</div><div class="ttc" id="group__ipaddr_html_ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049"><div class="ttname"><a href="group__ipaddr.html#ggaf2142f0dfdcc938e2db16aa745ed585cace47fa82608deeb1c1c7c2c891eb5049">IPADDR_TYPE_V4</a></div><div class="ttdef"><b>Definition:</b> ip_addr.h:56</div></div>
<div class="ttc" id="group__ip6addr_html_ga06e75bcd198012b5ba39480c233608bd"><div class="ttname"><a href="group__ip6addr.html#ga06e75bcd198012b5ba39480c233608bd">ip_2_ip6</a></div><div class="ttdeci">#define ip_2_ip6(ipaddr)</div><div class="ttdef"><b>Definition:</b> ip_addr.h:116</div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="dir_4e6b3cf33a61b6caac9c8ac30c866f37.html">lwip</a></li><li class="navelem"><a class="el" href="ip__addr_8h.html">ip_addr.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
